package org.dromara.system.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 讲解服务讲解员详情表
 * </p>
 *
 * @author xpheng
 * @since 2025-11-09
 */
@Getter
@Setter
@TableName("order_service_menu_explaintor")
public class OrderServiceMenuExplaintor extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 订单套餐id
     */
    @TableField("order_menu_id")
    private Long orderMenuId;

    /**
     * 订单套餐code
     */
    @TableField("order_code")
    private String orderCode;

    /**
     * 子订单套餐id
     */
    @TableField("sub_order_id")
    private Long subOrderId;

    /**
     * 子订单code
     */
    @TableField("sub_order_code")
    private String subOrderCode;

    /**
     * 服务id
     */
    @TableField("service_id")
    private Long serviceId;

    /**
     * 1-收费服务 3-免费服务
     */
    @TableField("service_type")
    private Integer serviceType;

    /**
     * -1社会讲解员  0馆内讲解员 1馆内等级
     */
    @TableField("museum_type")
    private Integer museumType;

    /**
     * 1->馆授权(等级认证讲解员)2->馆自营
     */
    @TableField("level_type")
    private Integer levelType;

    /**
     * 讲解员id
     */
    @TableField("explain_user_id")
    private Long explainUserId;

    /**
     * 讲解员姓名
     */
    @TableField("explain_user_name")
    private String explainUserName;

    /**
     * 讲解员电话
     */
    @TableField("explain_phone")
    private String explainPhone;

    /**
     * 讲解员头像
     */
    @TableField("explain_avatar")
    private String explainAvatar;

    /**
     * 讲解员等级id
     */
    @TableField("level_id")
    private Long levelId;

    /**
     * 讲解员等级
     */
    @TableField("level_name")
    private String levelName;

    /**
     * 讲解员图标
     */
    @TableField("level_icon")
    private String levelIcon;

    /**
     * 语言id
     */
    @TableField("language_id")
    private Long languageId;

    /**
     * 类型 0-普通 1-特殊（如手语
     */
    @TableField("language_type")
    private Integer languageType;

    /**
     * 语言名称
     */
    @TableField("language_name")
    private String languageName;

    /**
     * 语言翻译
     */
    @TableField("language_translate")
    private String languageTranslate;

    /**
     * 录音是否已经上传
     */
    @TableField("sound_is_upload")
    private Integer soundIsUpload;

    /**
     * 讲解录音
     */
    @TableField("sound_record")
    private String soundRecord;

    /**
     * 讲解录音word版
     */
    @TableField("sound_record_word")
    private String soundRecordWord;

    /**
     * 是否已经确认讲解员
     */
    @TableField("is_sure")
    private Integer isSure;

    /**
     * 1-> 已删除
     */
    @TableField("is_del")
    private Integer isDel;

    /**
     * 确认时间
     */
    @TableField("sure_time")
    private LocalDateTime sureTime;

    /**
     * 确认截止时间
     */
    @TableField("end_sure_time")
    private LocalDateTime endSureTime;

    /**
     * 讲解开始时间
     */
    @TableField("explain_start_time")
    private LocalDateTime explainStartTime;

    /**
     * 讲解结束时间
     */
    @TableField("explain_end_time")
    private LocalDateTime explainEndTime;

    /**
     * 讲解总时长
     */
    @TableField("explain_minute")
    private Integer explainMinute;

    /**
     * 讲解服务时长
     */
    @TableField("service_estimate_minute")
    private String serviceEstimateMinute;

    /**
     * 班次日期
     */
    @TableField("reservation_date")
    private LocalDate reservationDate;

    /**
     * 班次开始时间
     */
    @TableField("reservation_start_time")
    private LocalTime reservationStartTime;

    /**
     * 班次结束时间
     */
    @TableField("reservation_end_time")
    private LocalTime reservationEndTime;

    /**
     * 馆方注册id
     */
    @TableField("scenic_info_id")
    private Long scenicInfoId;

    /**
     * 景点id
     */
    @TableField("scenic_spot_id")
    private Long scenicSpotId;

    /**
     * 景点扫讲解员的码
     */
    @TableField("scenic_qrcode")
    private String scenicQrcode;

    /**
     * 景点是否已扫码
     */
    @TableField("scenic_qrcode_is_scan")
    private Integer scenicQrcodeIsScan;

    /**
     * 景点扫码时间
     */
    @TableField("scenic_qrcode_scan_time")
    private LocalDateTime scenicQrcodeScanTime;

    /**
     * 核销人id
     */
    @TableField("check_user_id")
    private Long checkUserId;

    /**
     * 核销人
     */
    @TableField("check_user")
    private String checkUser;

    /**
     * 服务id+预约日期+预约开始+讲解员 生成的key,用于快速查询免费讲解同服务同场次同讲解员的讲解记录
     */
    @TableField("`key`")
    private String key;


}
